Databases and database products are in common use today. Increasing in demand are mobile database products. Mobile database products are popular for their small size and portability. However, mobile database products have limited memory. Desirable features of database products include the ability to perform atomic and durable transactions. An atomic transaction is a transaction that is never partially committed—it is performed either fully or not at all. A durable transaction is one in which the change in the state of the database is permanent. Another desirable feature of a database is the ability to recover from failures, such as power failures, disk crashes, and the like. Current systems that perform atomic and durable transactions, and to provide stabile database recovery tend to be complex and require large amount of memory. Complex, memory intensive processes are not suited for products having limited amounts of memory, such as mobile database products.
A technique for performing atomic and durable transactions and providing a means to reliably recover from unexpected failures in a device having a limited amount of memory is desired.